package com.sy.service;

import com.sy.dto.PageBean;
import com.sy.entity.HomeFilePath;
import com.sy.entity.Homework;
import com.sy.entity.Teacher;
import com.sy.vo.HomeworkUpdateVo;
import com.sy.vo.HomeworkVo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @Author:fma
 * @Date: 2021/10/12 11:11
 */
public interface HomeWorkService {
    /**
     * 回显全部作业
     *
     * @param
     * @return 所有的作业
     */
    List<Homework> getAllHomes(Integer startLimit, Integer endLimit);

    /**
     * 获取全部标题名
     * 路径名 http://localhost:8888/homeworks
     */
    PageBean<Homework> getAllHomesBySno(Integer sno,Integer startLimit, Integer endLimit);

    /**
     * 回显总数
     *
     * @param
     * @return 作业数量
     */
    Integer getAllHomes();

    /**
     * 回显该教师的全部作业
     *
     * @param tno 教师学号
     * @return 当前教师布置的作业
     */
    List<Homework> getHomeByTno(Integer tno);

    /**
     * 回显该学生的全部作业
     *
     * @param id 作业id
     * @return 当前id的单个作业信息
     */
    Homework getHomeById(Integer id);

    /**
     * 将作业发布，添加到数据库中的homework表里
     *
     * @param homework 发布的作业
     * @return 发布作业是否成功
     */
    boolean publishHomework(HomeworkVo homework);

    /**
     * 根据条件分页查询作业信息
     * @param sno   当前学生的编号
     * @param theName   教师编号
     * @param theTitle 作业标题
     * @param pageNo 页码
     * @param pageNum 显示条数
     * @return 根据条件查询出的作业信息的分页结果
     */
    PageBean<Homework> getHomeWorksByConditions(Integer sno,String theName, String theTitle, Integer pageNo, Integer pageNum);

    /**
     * 根据条件分页查询作业信息
     *
     * @param tno    教师编号
     * @param title  作业标题
     * @param pageNo 页码
     * @return 根据条件查询出的作业信息的分页结果
     */
//    PageBean<Homework> getHomeWorksByConditions(Integer tno, String title, String createDate, Integer pageNo, Integer pageNum);

    /**
     * 范富强
     * <p>
     * 查询是否存在相同题目的作业
     *
     * @param title 发布的作业题目
     */
    void selectHomeworkByTitle(String title);

    /**
     * 范富强
     * <p>
     * 删除指定id的作业
     *
     * @param id 发布的作业id
     */
    boolean deleteHomeworkById(Integer id);

    /**
     * 范富强
     * <p>
     * 删除指定id的作业
     *
     * @param tno 发布作业老师教师序号
     * @param title 发布作业的标题中的内容
     * @param pageNum  每页显示的数量
     * @param pageNo 页码
     * @return 根据条件查询出的作业信息的分页结果
     */
    PageBean<Homework> getHomeWorksByConditions2(Integer tno,String title, Integer pageNo, Integer pageNum);

    /**
     * @Author:cxl
     * 回显该作业的链接
     * @param hid 作业id
     * @return 当前id的单个作业信息
     */
    List<String> getHomeFilePathsByHid(Integer hid);

    /**
     * @Author:cxl
     * 判断作业标题是否已存在
     * @param title 作业id
     * @return
     */
    boolean isHomeTitleExists(String title);

    /**
     * @Author ffq
     *
     * @param homeworkUpdateVo
     * @return 是否修改成功
     */
    boolean updateHomeWork(HomeworkUpdateVo homeworkUpdateVo);
    /**
     * @Author ffq
     *
     * @param id 作业序号
     * @return 指定作业序号的标题
     */
    boolean updateHomeWorkMarks(Integer id, Integer mark);
    /**
     * @Author ffq
     *
     * @param hid 作业序号
     * @return 指定作业序号的标题
     */
    List<String> getHomeFilePathsByHid2(Integer hid, Integer sno);
    /**
     * @Author ffq
     *
     * @param hid 作业序号
     * @return 指定作业序号的标题
     */
    //List<String> getTitleByHid(Integer hid);
}
